package com.finance.cooperate.dao.entity.secondary;

import com.finance.cooperate.dao.support.pojo.BaseAutomaticVO;
import lombok.Data;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Lob;
import javax.persistence.Table;

/**
 * @ClassName StrategyInfo
 * @Description 策略表
 * @Author shenanxin
 * @Date 2023/8/23 14:33
 * @Modify ...
 */
@Entity
@Table(name = "rc_strategy_info")
@Data
public class StrategyInfo extends BaseAutomaticVO {

    private static final long serialVersionUID = -1349428705276539395L;

    // 规则名称
    @Column(name = "name")
    private String name;

    // 规则描述
    @Column(name = "description")
    private String description;

    //是否打开, 0关闭, 1打开
    @Column(name = "status")
    private Integer status;

    // 该策略执行命中后，是否继续执行剩余策略【不包括 and 策略】
    @Column(name = "is_continue_execute")
    private Boolean isContinueExecute;

    // 策略权重
    @Column(name = "weight")
    private Double weight;

    // 策略组【如果存在组，按分流处理】
    @Column(name = "group")
    private String group;

    // 执行模型【如果存在，只命中通过该模型的策略】
    @Column(name = "model_id")
    private Long modelId;

    // 命中域值下限
    @Column(name = "lower_hit_score")
    private Double lowerHitScore;

    // 命中域值上限
    @Column(name = "upper_hit_score")
    private Double upperHitScore;

    // 贷款次数下限
    @Column(name = "lower_loan_num")
    private Long lowerLoanNum;

    // 贷款次数上限
    @Column(name = "upper_loan_num")
    private Long upperLoanNum;

    // 执行操作【-，+，=, 默认 =】
    @Column(name = "operation")
    private String operation;

    // 改变分
    @Column(name = "change_score")
    private Double changeScore;

    // 特征策略【如果有值】
    @Lob
    @Column(name = "feature_rule", columnDefinition = "TEXT")
    private String featureRule;


    // 扩展字段
    @Column(name = "extra1")
    private String extra1;

    // 扩展字段
    @Column(name = "extra2")
    private String extra2;

    // 扩展字段
    @Column(name = "extra3")
    private String extra3;


}
